<html>
<head><meta charset="utf-8"><title>Main.rs separate crate · general · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/index.html">general</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Main.2Ers.20separate.20crate.html">Main.rs separate crate</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="219242695"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Main.rs%20separate%20crate/near/219242695" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joe Seriah <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Main.2Ers.20separate.20crate.html#219242695">(Dec 08 2020 at 18:22)</a>:</h4>
<p>Hi guys,</p>
<p>I was wondering if <a href="http://main.rs">main.rs</a> is seen as a separate crate when it is compiled with <a href="http://lib.rs">lib.rs</a>? </p>
<p>I ask because when importing something from <a href="http://lib.rs">lib.rs</a> into the main file, you use the package name and not crate</p>



<a name="219242742"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Main.rs%20separate%20crate/near/219242742" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Main.2Ers.20separate.20crate.html#219242742">(Dec 08 2020 at 18:22)</a>:</h4>
<p><span class="user-mention" data-user-id="364259">@Joe Seriah</span> yes, <a href="http://main.rs">main.rs</a> is a separate crate from the library</p>



<a name="219242762"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Main.rs%20separate%20crate/near/219242762" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Main.2Ers.20separate.20crate.html#219242762">(Dec 08 2020 at 18:22)</a>:</h4>
<p>you can imaging it as dog-fooding your own API</p>



<a name="219242839"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Main.rs%20separate%20crate/near/219242839" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joe Seriah <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Main.2Ers.20separate.20crate.html#219242839">(Dec 08 2020 at 18:23)</a>:</h4>
<p>Do you know why it was designed this way?</p>



<a name="219242960"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Main.rs%20separate%20crate/near/219242960" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Main.2Ers.20separate.20crate.html#219242960">(Dec 08 2020 at 18:24)</a>:</h4>
<p>because otherwise anyone using your API would have to compile your main binary too</p>



<a name="219242971"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Main.rs%20separate%20crate/near/219242971" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Main.2Ers.20separate.20crate.html#219242971">(Dec 08 2020 at 18:24)</a>:</h4>
<p>which they aren't using, because it's not part of your API</p>



<a name="219243091"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Main.rs%20separate%20crate/near/219243091" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joe Seriah <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Main.2Ers.20separate.20crate.html#219243091">(Dec 08 2020 at 18:25)</a>:</h4>
<p>Oh why would I have a main file in a library API in the first place? Can’t the external API be tested with integration tests?</p>



<a name="219243241"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Main.rs%20separate%20crate/near/219243241" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Main.2Ers.20separate.20crate.html#219243241">(Dec 08 2020 at 18:27)</a>:</h4>
<p>well right, if you make them the same crate they're inextricable</p>



<a name="219243268"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Main.rs%20separate%20crate/near/219243268" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Main.2Ers.20separate.20crate.html#219243268">(Dec 08 2020 at 18:27)</a>:</h4>
<p>and integration tests don't tell you that your API is hard to use, you have to use it yourself to find that out</p>



<a name="219243565"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Main.rs%20separate%20crate/near/219243565" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joe Seriah <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Main.2Ers.20separate.20crate.html#219243565">(Dec 08 2020 at 18:30)</a>:</h4>
<p>Oh right, I guess to me a main file in a lib doesn’t make sense, certainly due to my inexperience with Rust</p>



<a name="219243778"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Main.rs%20separate%20crate/near/219243778" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joe Seriah <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Main.2Ers.20separate.20crate.html#219243778">(Dec 08 2020 at 18:31)</a>:</h4>
<p><span class="user-mention" data-user-id="232545">@Joshua Nelson</span> there is a crate called main on <a href="http://crates.io">crates.io</a> . Do you know how cargo differentiates that from the local main?</p>



<a name="219243805"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Main.rs%20separate%20crate/near/219243805" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Main.2Ers.20separate.20crate.html#219243805">(Dec 08 2020 at 18:31)</a>:</h4>
<p><span class="user-mention" data-user-id="364259">@Joe Seriah</span> maybe this helps: you can have <em>both</em> a binary and library in the same package, and have people use the library from <a href="http://crates.io">crates.io</a> without using the binary</p>



<a name="219243880"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Main.rs%20separate%20crate/near/219243880" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Main.2Ers.20separate.20crate.html#219243880">(Dec 08 2020 at 18:32)</a>:</h4>
<p><span class="user-mention silent" data-user-id="364259">Joe Seriah</span> <a href="#narrow/stream/122651-general/topic/Main.2Ers.20separate.20crate/near/219243778">said</a>:</p>
<blockquote>
<p><span class="user-mention silent" data-user-id="232545">Joshua Nelson</span> there is a crate called main on <a href="http://crates.io">crates.io</a> . Do you know how cargo differentiates that from the local main?</p>
</blockquote>
<p>they're different namespaces, <code>main.rs</code> is a file and <code>main</code> on <a href="http://crates.io">crates.io</a> is a package</p>



<a name="219243899"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Main.rs%20separate%20crate/near/219243899" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Main.2Ers.20separate.20crate.html#219243899">(Dec 08 2020 at 18:32)</a>:</h4>
<p>(and <code>fn main</code> is a function)</p>



<a name="219243973"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Main.rs%20separate%20crate/near/219243973" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joe Seriah <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Main.2Ers.20separate.20crate.html#219243973">(Dec 08 2020 at 18:33)</a>:</h4>
<p>Oh I thought <a href="http://main.rs">main.rs</a> will be seen as a package when it is compiled?</p>



<a name="219244069"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Main.rs%20separate%20crate/near/219244069" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joe Seriah <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Main.2Ers.20separate.20crate.html#219244069">(Dec 08 2020 at 18:33)</a>:</h4>
<p>Maybe local crates are in a different namespace than foreign ones?</p>



<a name="219244073"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Main.rs%20separate%20crate/near/219244073" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Main.2Ers.20separate.20crate.html#219244073">(Dec 08 2020 at 18:33)</a>:</h4>
<p>package != crate</p>



<a name="219244094"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Main.rs%20separate%20crate/near/219244094" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Eh2406 <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Main.2Ers.20separate.20crate.html#219244094">(Dec 08 2020 at 18:33)</a>:</h4>
<p>If we had "workspaces" in cargo from the beginning, then maybe we would have said "if you have a library and a binary then have a workspace where the binary depends on the library" but the "<a href="http://lib.rs">lib.rs</a> and <a href="http://main.rs">main.rs</a>" was already widely used when workspaces became a thing.</p>



<a name="219244185"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Main.rs%20separate%20crate/near/219244185" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Main.2Ers.20separate.20crate.html#219244185">(Dec 08 2020 at 18:34)</a>:</h4>
<p>package is what cargo generates when you run <code>cargo new</code>, a crate is what <code>rustc</code> sees when you run it</p>



<a name="219244205"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Main.rs%20separate%20crate/near/219244205" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Main.2Ers.20separate.20crate.html#219244205">(Dec 08 2020 at 18:34)</a>:</h4>
<p>packages can have multiple crates</p>



<a name="219244508"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Main.rs%20separate%20crate/near/219244508" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joe Seriah <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Main.2Ers.20separate.20crate.html#219244508">(Dec 08 2020 at 18:36)</a>:</h4>
<p><span class="user-mention" data-user-id="120179">@Eh2406</span> oh, how would that work because a workspace can have multiple libraries? Don’t you need to choose which one to make the binary depend on?</p>



<a name="219244594"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Main.rs%20separate%20crate/near/219244594" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joe Seriah <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Main.2Ers.20separate.20crate.html#219244594">(Dec 08 2020 at 18:37)</a>:</h4>
<p><span class="user-mention" data-user-id="232545">@Joshua Nelson</span> so <a href="http://crates.io">crates.io</a> is a package manager and not a crate manager?</p>



<a name="219244646"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Main.rs%20separate%20crate/near/219244646" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Main.2Ers.20separate.20crate.html#219244646">(Dec 08 2020 at 18:37)</a>:</h4>
<p>The binary depends on the library crate inside the same package if any and all the library crates in the packages specified in <code>[dependencies]</code>.</p>



<a name="219244669"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Main.rs%20separate%20crate/near/219244669" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Eh2406 <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Main.2Ers.20separate.20crate.html#219244669">(Dec 08 2020 at 18:37)</a>:</h4>
<p>Shure but the <code>Cargo.toml</code> of the binary can specify exactly which libraries it depends on.</p>



<a name="219244678"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Main.rs%20separate%20crate/near/219244678" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joe Seriah <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Main.2Ers.20separate.20crate.html#219244678">(Dec 08 2020 at 18:38)</a>:</h4>
<p>And a crate cannot have external dependencies if you use just rustc?</p>



<a name="219244769"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Main.rs%20separate%20crate/near/219244769" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Main.2Ers.20separate.20crate.html#219244769">(Dec 08 2020 at 18:38)</a>:</h4>
<p>It can, but you need to build them yourself in that case.</p>



<a name="219245043"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Main.rs%20separate%20crate/near/219245043" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joe Seriah <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Main.2Ers.20separate.20crate.html#219245043">(Dec 08 2020 at 18:40)</a>:</h4>
<p>Oh that makes sense. Would this workspace setting also be the same if i had multiple binaries?</p>



<a name="219245152"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Main.rs%20separate%20crate/near/219245152" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joe Seriah <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Main.2Ers.20separate.20crate.html#219245152">(Dec 08 2020 at 18:42)</a>:</h4>
<p><span class="user-mention" data-user-id="133247">@bjorn3</span> ah thank you, I keep forgetting that the comp unit is a crate and not a file</p>



<a name="219245525"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Main.rs%20separate%20crate/near/219245525" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Eh2406 <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Main.2Ers.20separate.20crate.html#219245525">(Dec 08 2020 at 18:44)</a>:</h4>
<p><a href="https://doc.rust-lang.org/book/ch14-03-cargo-workspaces.html">https://doc.rust-lang.org/book/ch14-03-cargo-workspaces.html</a></p>



<a name="219245850"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Main.rs%20separate%20crate/near/219245850" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joe Seriah <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Main.2Ers.20separate.20crate.html#219245850">(Dec 08 2020 at 18:47)</a>:</h4>
<p><span class="user-mention" data-user-id="120179">@Eh2406</span> oh I meant in your example, would each binary in the workspace need to depend on a library or just a “main crate”?</p>
<p>Thanks for the link too!</p>



<a name="219246328"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Main.rs%20separate%20crate/near/219246328" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Eh2406 <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Main.2Ers.20separate.20crate.html#219246328">(Dec 08 2020 at 18:51)</a>:</h4>
<p>I don't think there would be a “main crate”, there would be a bunch of binary projects each of which wich can specify its dependencies, probably including some of the libraries in the workspace.</p>



<a name="219246469"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Main.rs%20separate%20crate/near/219246469" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joe Seriah <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Main.2Ers.20separate.20crate.html#219246469">(Dec 08 2020 at 18:52)</a>:</h4>
<p>Oh that makes sense, thank you for explaining</p>



<a name="219247231"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Main.rs%20separate%20crate/near/219247231" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Eh2406 <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Main.2Ers.20separate.20crate.html#219247231">(Dec 08 2020 at 18:58)</a>:</h4>
<p>IMO, workspaces make it easy to have multiple related projects, which is a clearer more flexible architecture. If we had workspaces from the beginning I would have voted to not have allowed libs and binary to live in the same package. But before workspaces we needed something to make that use case workable. And it was too common to depricat when workspaces came along. (all opinions are my own and I am not speaking for the Cargo Team.)</p>



<a name="219247892"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Main.rs%20separate%20crate/near/219247892" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Eh2406 <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Main.2Ers.20separate.20crate.html#219247892">(Dec 08 2020 at 19:04)</a>:</h4>
<p>For example we had similar questions around "proc-macros", if you have a proc-macro and a library can the macro see the library or the other way around? Can <code>serde</code> use <code>serde-derive</code> or is it the other way around. Depending on your use case on or the other makes sense. And the answer that was chosen was you can't have a proc-macro and anything else in the same package. Use a workspace with two packages, and tell cargo which direction the dependency is.</p>



<a name="219249168"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122651-general/topic/Main.rs%20separate%20crate/near/219249168" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joe Seriah <a href="https://rust-lang.github.io/zulip_archive/stream/122651-general/topic/Main.2Ers.20separate.20crate.html#219249168">(Dec 08 2020 at 19:15)</a>:</h4>
<p>Yeah I find workspaces to be really flexible and good at separating concerns, really nice too that it can be used with git submodules</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>